/*
 * @Author: bobo
 * @Date: 2021-01-04 11:28:29
 * 自定义本地缓存工具类
 */
/* eslint-disable */
export default {
  /**
   * 缓存存储(支持过期)
   * @param {string} key 关键字
   * @param {string} value 值
   * @param {number} expire 过期时间，单位:秒  -1永久存储
   */
  setExp: function (key, value, expire) {
    if (key == null || value == null) {
      console.error('key or value is null');
      return;
    }
    if (typeof (expire) == undefined || expire == -1) {
      localStorage.setItem(key, value + "|-1|-1");
      return;
    }
    localStorage.setItem(key, value + "|" + new Date().valueOf() + "|" + expire);
  },
  /**
   * 获取缓存(支持过期)
   * @param {string} key  关键字
   */
  getExp: function (key) {
    let val = localStorage.getItem(key);
    if (val == null) {
      return null;
    }
    let tmp = val.split("|");
    //不合法数据，直接移除
    if (tmp.length != 3) {
      this.remove(key);
      return null;
    }

    if (tmp[1] == -1 && tmp[2] == -1) {
      return tmp[0];
    }

    //获取已经存储的时间
    let difTime = (new Date().valueOf() - tmp[1]) / 1000;
    if (difTime >= tmp[2]) {
      this.remove(key);
      return null;
    } else {
      return tmp[0];
    }
  },
  /**
   * 移除缓存
   * @param {string} key 关键字
   */
  remove: function (key) {
    localStorage.removeItem(key);
  },

  clear: function () {
    localStorage.clear();
  }
}